﻿/*
7-21 求特殊方程的正整数解 (15 分)
本题要求对任意给定的正整数N，求方程X​2​​ + Y2​​​ =N的全部正整数解。

输入格式：
输入在一行中给出正整数N（≤10000）。

输出格式：
输出方程X
X​2​​ + Y2​​​ =N的全部正整数解，其中X≤Y。每组解占1行，两数字间以1空格分隔，按X的递增顺序输出。如果没有解，则输出No Solution。

输入样例1：
884
输出样例1：
10 28
20 22
输入样例2：
11
输出样例2：
No Solution
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main() {
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/zju_C_Basic/data/7.21.txt", "r", stdin);
	int n = 0;
	scanf("%d", &n);
	int n2 = sqrt(n/2);
	int y;
	int i2;
	int count = 0;

	for (int i = 1; i <= n2; i++) {
		i2 = i * i;
		y = sqrt(n - i2);
		if (y>0 && y * y + i2 == n) {
			count++;
			printf("%d %d\n", i, y);
		}
	}

	if (count == 0)
		printf("No Solution");
	
	return 0;
}